package net.techwatch.fsindex.dao;

import java.util.List;

import net.techwatch.fsindex.FileSystemObject;

/**
 * @author wiv
 *
 */
public interface FileSystemDao {

	/**
	 * @param fsObj
	 * @return
	 */
	int create(FileSystemObject fsObj);
	
	/**
	 * @param id
	 * @param lastUpdate
	 * @return
	 */
	int update(long id, long lastUpdate);
	
	/**
	 * @param id
	 * @return
	 */
	int remove(long id);
	
	/**
	 * @return
	 */
	@SuppressWarnings("unchecked")
	List getFiles();
	
	/**
	 * @return
	 */
	@SuppressWarnings("unchecked")
	List getDirLevel0();
	
	/**
	 * @return
	 */
	@SuppressWarnings("unchecked")
	List getDirLevel1();
	
	/**
	 * @return
	 */
	@SuppressWarnings("unchecked")
	List getDirLevel2();
	
	/**
	 * @return
	 */
	@SuppressWarnings("unchecked")
	List getDirLevel3();
	
	@SuppressWarnings("unchecked")
	List getChildren(long parentId);
	
	/**
	 * @return
	 */
	int clean();
}
